This invention relates to the performance of color management actions in a computing system and, more particularly, to a method and apparatus which intelligently assigns color management actions to the component in the computing system that is best adapted to carry out the color management action, given the characteristics of a document to be processed.
The term xe2x80x9ccolor managementxe2x80x9d, as applied to computer based systems, relates to management of color appearance via one or more color space conversions. Color management enables the color displayed on a user""s monitor to remain true, and through the conversions to enable a printer or scanner to output a color, within its gamut limitations, that is consistent with the original image. In essence, color management involves one or more conversions of an image""s color values in a first color space to another color space, for subsequent output by a printer or another monitor. For instance, color values produced by a processor are generally output in the red/green/blue (RGB) color space, whereas printer systems generally employ a cyan, magenta, yellow, black (CMYK) color space.
Each device in a computer-based printing system (including computers, printers, scanners, etc.) is associated with a xe2x80x9cdevice profilexe2x80x9d which defines how the particular device produces colors in a specific color space. Thus, when a succeeding device receives a xe2x80x9cdevice profilexe2x80x9d from a previous device, it compares its profile to the profile of the previous device, recognizes the differences and is then able to perform a color translation from the profile of the previous device to the profile of the succeeding device.
To enable interaction between multiple types of printers, scanners and host computers, etc., a color conversion is often accomplished from one color space to a widely recognized intermediate color space that is recognized as a standard. This intermediate color space is sometimes called the xe2x80x9cCIELABxe2x80x9d color space. For example, a computer converts its color output values from the RGB color space to the CIELAB color space, knowing that many devices can convert the CIELAB color values directly to their specific device color spaces, as needed.
In the prior art, software applications generally arbitrarily decided whether the color management actions would be handled, in all cases, on the host processor by the application or by the printing device. Once that decision was made, it was carried forth in the same way in all subsequent color management actions. These solutions did not allow the color management actions to be intelligently distributed to take advantage of potential hardware capabilities, processing loads or image characteristics. Such systems also posed potential image quality problems, in that the processing on the host processor could produce significantly different visual results than if, for instance, an image was processed by the printing device.
Other prior art delegated the decision as to locale of a color management action to the device driver installed on the host processor. Again, such device drivers would decide whether the color management actions would be handled, in all cases, by the host processor or by the printing device. This action forced all color management processing to be performed, in its entirety, by either the host or the printing device.
Color management actions can vary from relatively simple to complex, depending upon the particular type of management that is desired. For instance, when converting an image from one color space to another color space, a number of xe2x80x9crendering intentsxe2x80x9d are often available in the color profiles. Three rendering intents are commonly employed. A first rendering intent is often called xe2x80x9cperceptualxe2x80x9d and enables translation of input colors to corresponding humanly perceived color values. The perceptual intent is often employed in the reproduction of photographs and other real life images. Another rendering intent is called xe2x80x9ccolorimetricxe2x80x9d and provides very accurate (one-to-one) color translation from the input color space to the output color space. A third rendering intent is called xe2x80x9csaturationxe2x80x9d and provides bright colors in response to input color values from a source color space.
Certain documents to be subjected to a color management action may have multiple images that are to be subjected to different rendering intents or, by contrast, may have a unitary image whose color management will involve only use of a single rendering intent. Clearly, the processing of a single rendering intent for a single document is less computationally expensive than is processing of the input color space in accordance with plural rendering intents.
As indicated above, there are a number of color spaces that are utilized by various devices in currently available computational systems. The most common are red, green, blue and cyan, magenta, yellow and black. When converting from RGB to CMYK, the 3 colors (RGB) require xe2x80x9c3 channelsxe2x80x9d for processing. To convert the RGB values to CMYK, 4 channels of processing are required. Other color systems require more channels (e.g., hexachrome requires 6 channels). The greater the number of channels, the more complex is the required processing. Further, the complexity of color management processing increases with the size of the image to be handled.
Accordingly, the fixed assignment procedures utilized for color management by the prior art have not provided sufficient flexibility to take into account the various complexities that may occur when dealing with documents that require color management. There is, therefore, a need for improved color management assignment functions which take into account various system capabilities and document/image complexities.
It is, therefore, an object of this invention to provide an improved method and apparatus for assigning color management actions within a computational system.
It is another object of this invention to provide an improved assignment procedure for determining where a color management action will be executed, basing such decision upon received image complexities.
The method of the invention adaptively assigns an image data color management action to a component of a computing system. The computing system includes control programs such as an application program and a peripheral driver program. The computing system further includes a peripheral device that may have both software color management capability and hardware color management capability. The method of the invention initially examines received image data to determine at least one characteristic thereof. The method then compares the characteristic with one or more decision parameters that enable an assessment of the complexity of the color management actions required for the image data. Thereafter, based upon the result of the comparing action, the image data is subjected to a color management action by a selected one of the control programs or by the peripheral device, dependent upon the determined complexity of the image data.